package com.meshnetics.gb.stack.core.event;

import com.meshnetics.gb.Context;
import com.meshnetics.gb.stack.core.layer.StackLayer;

/**
 * Base class for all stack indication events.
 *
 * @author mmarkov
 */
public class StackIndication extends StackEvent {
    /**
     * Constructs StackIndication having the given name and type and no Context.
     *
     * @param name the name of StackIndication
     * @param type the type of StackIndication
     */
    public StackIndication(String name, StackEventType type) {
        this(name, type, null);
    }

    /**
     * Constructs StackIndication having the given name, type and context.
     *
     * @param name the name of StackIndication
     * @param type the type of StackIndication
     * @param ctx  the Context of StackIndication (could be null)
     */
    public StackIndication(String name, StackEventType type, Context ctx) {
        this(name, type, ctx, null);
    }

    /**
     * Creates StackEvent with given name, type, context and source.
     *
     * @param name   the name of StackEvent
     * @param type   the type of StackEvent
     * @param ctx    the Context of StackEvent (could be null)
     * @param source the source of event (can be null)
     */
    public StackIndication(String name, StackEventType type, Context ctx, StackLayer source) {
        super(name, type, ctx, source);
    }
}
